package cn.xgj.sfzy.controller;

import cn.xgj.sfzy.entity.ConsultLv;
import cn.xgj.sfzy.service.ConsultLvService;
import cn.xgj.sfzy.util.Result;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Author 张卫姣
 * @Date 2024年10月23日 20:37
 * @Version 1.0
 */
@RestController
@RequestMapping("/consultLv")
public class ConsultLvController {
    @Autowired
    private ConsultLvService consultLvService;

    @PostMapping("/addConsultLv")
    public Result addConsultLv(@RequestBody ConsultLv consultLv){
        Integer num = consultLvService.add(consultLv);
        System.out.println(consultLv.toString());
        if (num!=0){
            return Result.success("添加成功！");
        }else{
            return Result.error("添加失败！");
        }

    }

    @DeleteMapping("/removeConsultLv/{consultLvId}")
    public Result removeConsultLv(@PathVariable("consultLvId") Integer id){
        Integer num = consultLvService.remove(id);
        if (num==0){
            return Result.error("删除失败！");
        }else if(num==-1){
            return Result.error("该类型相关数据未删除，请删除之后再试！");
        }
        else{
            return Result.success("删除成功！");
        }

    }

    @PutMapping("/editConsultLv")
    public Result editConsultLv(@RequestBody ConsultLv consultLv){
        Integer num = consultLvService.edit(consultLv);
        if (num!=0){
            return Result.success("修改成功！");
        }else{
            return Result.error("修改失败！");
        }
    }

    @GetMapping("/findAllConsultLv")
    public Result findAllConsultLv(ConsultLv consultLv){
        List<ConsultLv> consultLvs = consultLvService.findAll(consultLv);
        return Result.success(consultLvs);
    }

    @GetMapping("/findByIdConsultLv/{consultLvId}")
    public Result findByIdConsultLv(@PathVariable("consultLvId") Integer consultLvId){
        ConsultLv consultLv = consultLvService.findById(consultLvId);
        return Result.success(consultLv);

    }

    @GetMapping("/findByPageConsultLv")
    public Result findByPageConsultLv(
            @RequestParam(required = false,defaultValue = "1") Integer pageNum,
            @RequestParam(required = false,defaultValue = "5")Integer pageSize,ConsultLv consultLv){
        PageInfo<ConsultLv> pageInfo = consultLvService.findByPage(pageNum, pageSize, consultLv);
        return Result.success(pageInfo);

    }


}
